﻿using System;

namespace WebApplication1.Microsoft.Extensions.DependencyInjection
{
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)]
    public class ExposeAttribute : Attribute
    {

        public ExposeAttribute(bool disableKeyedService = false, params Type[]? serviceType)
        {
            ServiceType = serviceType;
            DisableKeyedService = disableKeyedService;
        }

        public ExposeAttribute(bool disableKeyedService = false) : this(disableKeyedService, null)
        {
        }

        public ExposeAttribute(params Type[]? serviceType) : this(false, serviceType)
        {
        }


        public Type[]? ServiceType { get; }
        public bool DisableKeyedService { get; }
    }
}